Verifying correct usage of context-free API protocols
نویسندگان
چکیده
Several real-world libraries (e.g., reentrant locks, GUI frameworks, serialization libraries) require their clients to use the provided API in a manner that conforms context-free specification. Motivated by this observation, paper describes new technique for verifying correct usage of protocols. The key idea underlying our is over-approximate program’s feasible call sequences using grammar (CFG) and then check language inclusion between However, since may fail due imprecision CFG abstraction, we propose novel refinement progressively improve CFG. In particular, method obtains counterexamples from queries uses them introduce non-terminals productions while still over-approximating relevant behavior. We have implemented proposed algorithm tool called CFPChecker evaluate it on 10 popular Java applications at least one with Our evaluation shows able verify correctly produces those do not. also compare against three baselines demonstrate enables verification safety properties are beyond reach existing tools.
منابع مشابه
Verifying Correct Usage of Atomic Blocks with Typestate
The atomic block, a synchronization primitive provided to programmers in transactional memory systems, has the potential to greatly ease the development of concurrent software. However, atomic blocks can still be used incorrectly, and race conditions can still occur at the level of application logic. In this paper, we present a static analysis, formalized as a programming language and proven so...
متن کاملVerifying Electronic Commerce Protocols
This proposal concerns protocol verification by formal proof. With EPSRC funding, Paulson has developed a new and highly successful approach to verifying security protocols: the inductive method. The protocols analyzed by this method include a standard Internet protocol (TLS, a descendant of SSL) [10] and one developed by a UK company, APM Ltd. [9]. APM’s protocol was difficult to analyze using...
متن کاملVerifying Norm Compliancy of Protocols
There is a wide agreement on the use of norms in order to specify the expected behaviour of agents in open MAS. However, in highly regulated domains, where norms dictate what can and cannot be done, it can be hard to determine whether a desired goal can actually be achieved without violating the norms. To help the agents in this process, agents can make use of predefined (knowledge-based) proto...
متن کاملProving Security Protocols Correct
Security protocols use cryptography to set up private communication channels on an insecure network. Many protocols contain flaws, and because security goals are seldom specified in detail, we cannot be certain what constitutes a flaw. Thanks to recent work by a number of researchers, security protocols can now be analyzed formally. The paper outlines the problem area, emphasizing the notion of...
متن کاملCreating Correct Network Protocols
List of Papers This thesis is based on the following papers, which are referred to in the text by their Roman numerals. The methodology used in this paper was previously presented in [99]. Reprints are made with permission from the publishers. My Contribution Paper I. In the work related to Paper I, I participated in developing the Windows version of LUNAR. I also performed initial verification...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2021
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3434298